CRC-32 algorithm